home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group01a.txt / 000015_icon-group-sender _Wed May 17 12:23:02 2000.msg < prev    next >
Internet Message Format  |  2002-01-03  |  3KB

  1. Return-Path: <icon-group-sender>
  2. Received: (from root@localhost)
  3.     by baskerville.CS.Arizona.EDU (8.9.1a/8.9.1) id MAA09657
  4.     for icon-group-addresses; Wed, 17 May 2000 12:22:45 -0700 (MST)
  5. Message-Id: <200005171922.MAA09657@baskerville.CS.Arizona.EDU>
  6. Subject: Re: Is Anyone Working On A Unicode Version Of Icon?
  7. Date: Wed, 17 May 2000 10:49:08 -0700
  8. x-sender: cary@adlmail.cup.hp.com
  9. From: Cary Coutant <cary@cup.hp.com>
  10. To: "Steve Wampler" <swampler@noao.edu>,
  11.         "icon-group" <icon-group@optima.CS.Arizona.EDU>
  12. Errors-To: icon-group-errors@optima.CS.Arizona.EDU
  13. Status: RO
  14. Content-Length: 2096
  15.  
  16. >Just for historical accuracy...
  17. >
  18. >1979 is the first C implemenation of Icon (done by Cary Coutant and me) -
  19. >the first implementation of Icon (an amazing beast written in FORTRAN that
  20. >producing FORTRAN (really RatFor) executables) was several years old by
  21. >that time.  Also, the C implementation was done on a PDP 11/70, with
  22. >its 64K address space - so some of the implementation decisions were driven
  23. >by considerations that are no longer relevant!
  24. >
  25. >Cary produced a compiler for Icon at the same time, but there was 
  26. >surprisingly
  27. >little improvement over the interpreter because Icon spends most of its time
  28. >in the run-time system, which is already compiled code.  It wasn't until 
  29. >later
  30. >that Ken Walker's work produced a more efficient optimizing compiler.
  31.  
  32. To clarify a bit more, the first implementation we did in 1979 was sort 
  33. of a compiler. The icon translator still generated the "u-code" -- our 
  34. intermediate representation -- and the icon linker then generated a 
  35. single, large, PDP-11 assembly-language source file. This file was then 
  36. assembled and linked against the large Icon runtime library to produce a 
  37. native executable. The assembly code was really little more than calls to 
  38. the runtime system, and was a very straightforward and simple translation 
  39. of the Icon intermediate code.
  40.  
  41. The problem with this approach was that the runtime library was so huge 
  42. that link times were large even for a simple "hello, world" program.
  43.  
  44. Around 1981, I think, I spent a week modifying the Icon linker to produce 
  45. the Icon byte code instead of PDP-11 assembly language, and then built a 
  46. small interpreter, linked to the runtime system. Now, the Icon linker 
  47. needed only to produce a small bytecode file that could be read and 
  48. interpreted by "iconx." The result was greatly improved compile and link 
  49. times, very little runtime performance difference, and -- finally -- 
  50. easier portability to other Unix machines.
  51.  
  52. At the time, I was just copying the idea of a bytecode interpreter from 
  53. the Pascal p-system. Little did I realize that Sun had yet to "invent" 
  54. bytecode!
  55.  
  56. -cary
  57.